package com.supermarket.business.vo;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.supermarket.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 库存变动对象 sys_inventory_change
 * 
 * @author ruoyi
 * @date 2025-07-21
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("sys_inventory_change")
public class SupermarketInventoryChangeVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 变动ID */
    @Excel(name = "变动ID")
    private Long changeId;

    /** 变动单号 */
    @Excel(name = "变动单号")
    private String changeNumber;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Long productId;

    /** 变动时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "变动时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /** 变动数量(正数为增加 负数为减少) */
    @Excel(name = "变动数量(正数为增加 负数为减少)")
    private Long quantity;

    /** 变动类型(IN入库 OUT出库 ADJUST调整) */
    @Excel(name = "变动类型(IN入库 OUT出库 ADJUST调整)")
    private String changeType;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String managerId;

    /** 来源订单ID(出库时关联销售订单) */
    @Excel(name = "来源订单ID(出库时关联销售订单)")
    private Long sourceOrderId;

    /** 状态(0待审核 1已完成) */
    private String status;

    /** 备注 */
    private String remark;
}
